package main

import "fmt"

func main() {
	var s1 []int // 定义一个nil切片
	fmt.Println(s1, len(s1), cap(s1))
	fmt.Printf("address of slice %p \n", s1)
	fmt.Println(s1 == nil) // true
	s1 = append(s1, 1)
	fmt.Println(s1, len(s1), cap(s1)) // 1 1
	fmt.Printf("address of slice %p \n", s1)
	fmt.Println(s1 == nil) // false
}

// nil切片和空切片指向的地址不一样。nil空切片引用数组指针地址为0（无指向任何实际地址）
// nil切片也可以进行append()操作，当append后会被分配地址
